//
// Created by jhwangbo on 27/06/17.
//

#ifndef RAI_RAI_KEYBOARD_HPP
#define RAI_RAI_KEYBOARD_HPP

typedef enum
{
  RAI_KEY_UNKNOWN = 0,
  RAI_KEY_A = 4,
  RAI_KEY_B = 5,
  RAI_KEY_C = 6,
  RAI_KEY_D = 7,
  RAI_KEY_E = 8,
  RAI_KEY_F = 9,
  RAI_KEY_G = 10,
  RAI_KEY_H = 11,
  RAI_KEY_I = 12,
  RAI_KEY_J = 13,
  RAI_KEY_K = 14,
  RAI_KEY_L = 15,
  RAI_KEY_M = 16,
  RAI_KEY_N = 17,
  RAI_KEY_O = 18,
  RAI_KEY_P = 19,
  RAI_KEY_Q = 20,
  RAI_KEY_R = 21,
  RAI_KEY_S = 22,
  RAI_KEY_T = 23,
  RAI_KEY_U = 24,
  RAI_KEY_V = 25,
  RAI_KEY_W = 26,
  RAI_KEY_X = 27,
  RAI_KEY_Y = 28,
  RAI_KEY_Z = 29,
  RAI_KEY_1 = 30,
  RAI_KEY_2 = 31,
  RAI_KEY_3 = 32,
  RAI_KEY_4 = 33,
  RAI_KEY_5 = 34,
  RAI_KEY_6 = 35,
  RAI_KEY_7 = 36,
  RAI_KEY_8 = 37,
  RAI_KEY_9 = 38,
  RAI_KEY_0 = 39,
  RAI_KEY_RETURN = 40,
  RAI_KEY_ESCAPE = 41,
  RAI_KEY_BACKSPACE = 42,
  RAI_KEY_TAB = 43,
  RAI_KEY_SPACE = 44,
  RAI_KEY_MINUS = 45,
  RAI_KEY_EQUALS = 46,
  RAI_KEY_LEFTBRACKET = 47,
  RAI_KEY_RIGHTBRACKET = 48,
  RAI_KEY_BACKSLASH = 49,
  RAI_KEY_NONUSHASH = 50,
  RAI_KEY_SEMICOLON = 51,
  RAI_KEY_APOSTROPHE = 52,
  RAI_KEY_GRAVE = 53,
  RAI_KEY_COMMA = 54,
  RAI_KEY_PERIOD = 55,
  RAI_KEY_SLASH = 56,
  RAI_KEY_CAPSLOCK = 57,
  RAI_KEY_F1 = 58,
  RAI_KEY_F2 = 59,
  RAI_KEY_F3 = 60,
  RAI_KEY_F4 = 61,
  RAI_KEY_F5 = 62,
  RAI_KEY_F6 = 63,
  RAI_KEY_F7 = 64,
  RAI_KEY_F8 = 65,
  RAI_KEY_F9 = 66,
  RAI_KEY_F10 = 67,
  RAI_KEY_F11 = 68,
  RAI_KEY_F12 = 69,
  RAI_KEY_PRINTSCREEN = 70,
  RAI_KEY_SCROLLLOCK = 71,
  RAI_KEY_PAUSE = 72,
  RAI_KEY_INSERT = 73,
  RAI_KEY_HOME = 74,
  RAI_KEY_PAGEUP = 75,
  RAI_KEY_DELETE = 76,
  RAI_KEY_END = 77,
  RAI_KEY_PAGEDOWN = 78,
  RAI_KEY_RIGHT = 79,
  RAI_KEY_LEFT = 80,
  RAI_KEY_DOWN = 81,
  RAI_KEY_UP = 82,
  RAI_KEY_NUMLOCKCLEAR = 83,
  RAI_KEY_KP_DIVIDE = 84,
  RAI_KEY_KP_MULTIPLY = 85,
  RAI_KEY_KP_MINUS = 86,
  RAI_KEY_KP_PLUS = 87,
  RAI_KEY_KP_ENTER = 88,
  RAI_KEY_KP_1 = 89,
  RAI_KEY_KP_2 = 90,
  RAI_KEY_KP_3 = 91,
  RAI_KEY_KP_4 = 92,
  RAI_KEY_KP_5 = 93,
  RAI_KEY_KP_6 = 94,
  RAI_KEY_KP_7 = 95,
  RAI_KEY_KP_8 = 96,
  RAI_KEY_KP_9 = 97,
  RAI_KEY_KP_0 = 98,
  RAI_KEY_KP_PERIOD = 99,
  RAI_KEY_NONUSBACKSLASH = 100,
  RAI_KEY_APPLICATION = 101,
  RAI_KEY_POWER = 102,
  RAI_KEY_KP_EQUALS = 103,
  RAI_KEY_F13 = 104,
  RAI_KEY_F14 = 105,
  RAI_KEY_F15 = 106,
  RAI_KEY_F16 = 107,
  RAI_KEY_F17 = 108,
  RAI_KEY_F18 = 109,
  RAI_KEY_F19 = 110,
  RAI_KEY_F20 = 111,
  RAI_KEY_F21 = 112,
  RAI_KEY_F22 = 113,
  RAI_KEY_F23 = 114,
  RAI_KEY_F24 = 115,
  RAI_KEY_EXECUTE = 116,
  RAI_KEY_HELP = 117,
  RAI_KEY_MENU = 118,
  RAI_KEY_SELECT = 119,
  RAI_KEY_STOP = 120,
  RAI_KEY_AGAIN = 121,   /**< redo */
  RAI_KEY_UNDO = 122,
  RAI_KEY_CUT = 123,
  RAI_KEY_COPY = 124,
  RAI_KEY_PASTE = 125,
  RAI_KEY_FIND = 126,
  RAI_KEY_MUTE = 127,
  RAI_KEY_VOLUMEUP = 128,
  RAI_KEY_VOLUMEDOWN = 129,
  RAI_KEY_KP_COMMA = 133,
  RAI_KEY_KP_EQUALSAS400 = 134,
  RAI_KEY_INTERNATIONAL1 = 135,
  RAI_KEY_INTERNATIONAL2 = 136,
  RAI_KEY_INTERNATIONAL3 = 137, /**< Yen */
  RAI_KEY_INTERNATIONAL4 = 138,
  RAI_KEY_INTERNATIONAL5 = 139,
  RAI_KEY_INTERNATIONAL6 = 140,
  RAI_KEY_INTERNATIONAL7 = 141,
  RAI_KEY_INTERNATIONAL8 = 142,
  RAI_KEY_INTERNATIONAL9 = 143,
  RAI_KEY_LANG1 = 144, /**< Hangul/English toggle */
  RAI_KEY_LANG2 = 145, /**< Hanja conversion */
  RAI_KEY_LANG3 = 146, /**< Katakana */
  RAI_KEY_LANG4 = 147, /**< Hiragana */
  RAI_KEY_LANG5 = 148, /**< Zenkaku/Hankaku */
  RAI_KEY_LANG6 = 149, /**< reserved */
  RAI_KEY_LANG7 = 150, /**< reserved */
  RAI_KEY_LANG8 = 151, /**< reserved */
  RAI_KEY_LANG9 = 152, /**< reserved */
  RAI_KEY_ALTERASE = 153, /**< Erase-Eaze */
  RAI_KEY_SYSREQ = 154,
  RAI_KEY_CANCEL = 155,
  RAI_KEY_CLEAR = 156,
  RAI_KEY_PRIOR = 157,
  RAI_KEY_RETURN2 = 158,
  RAI_KEY_SEPARATOR = 159,
  RAI_KEY_OUT = 160,
  RAI_KEY_OPER = 161,
  RAI_KEY_CLEARAGAIN = 162,
  RAI_KEY_CRSEL = 163,
  RAI_KEY_EXSEL = 164,
  RAI_KEY_KP_00 = 176,
  RAI_KEY_KP_000 = 177,
  RAI_KEY_THOUSANDSSEPARATOR = 178,
  RAI_KEY_DECIMALSEPARATOR = 179,
  RAI_KEY_CURRENCYUNIT = 180,
  RAI_KEY_CURRENCYSUBUNIT = 181,
  RAI_KEY_KP_LEFTPAREN = 182,
  RAI_KEY_KP_RIGHTPAREN = 183,
  RAI_KEY_KP_LEFTBRACE = 184,
  RAI_KEY_KP_RIGHTBRACE = 185,
  RAI_KEY_KP_TAB = 186,
  RAI_KEY_KP_BACKSPACE = 187,
  RAI_KEY_KP_A = 188,
  RAI_KEY_KP_B = 189,
  RAI_KEY_KP_C = 190,
  RAI_KEY_KP_D = 191,
  RAI_KEY_KP_E = 192,
  RAI_KEY_KP_F = 193,
  RAI_KEY_KP_XOR = 194,
  RAI_KEY_KP_POWER = 195,
  RAI_KEY_KP_PERCENT = 196,
  RAI_KEY_KP_LESS = 197,
  RAI_KEY_KP_GREATER = 198,
  RAI_KEY_KP_AMPERSAND = 199,
  RAI_KEY_KP_DBLAMPERSAND = 200,
  RAI_KEY_KP_VERTICALBAR = 201,
  RAI_KEY_KP_DBLVERTICALBAR = 202,
  RAI_KEY_KP_COLON = 203,
  RAI_KEY_KP_HASH = 204,
  RAI_KEY_KP_SPACE = 205,
  RAI_KEY_KP_AT = 206,
  RAI_KEY_KP_EXCLAM = 207,
  RAI_KEY_KP_MEMSTORE = 208,
  RAI_KEY_KP_MEMRECALL = 209,
  RAI_KEY_KP_MEMCLEAR = 210,
  RAI_KEY_KP_MEMADD = 211,
  RAI_KEY_KP_MEMSUBTRACT = 212,
  RAI_KEY_KP_MEMMULTIPLY = 213,
  RAI_KEY_KP_MEMDIVIDE = 214,
  RAI_KEY_KP_PLUSMINUS = 215,
  RAI_KEY_KP_CLEAR = 216,
  RAI_KEY_KP_CLEARENTRY = 217,
  RAI_KEY_KP_BINARY = 218,
  RAI_KEY_KP_OCTAL = 219,
  RAI_KEY_KP_DECIMAL = 220,
  RAI_KEY_KP_HEXADECIMAL = 221,
  RAI_KEY_LCTRL = 224,
  RAI_KEY_LSHIFT = 225,
  RAI_KEY_LALT = 226, /**< alt, option */
  RAI_KEY_LGUI = 227, /**< windows, command (apple), meta */
  RAI_KEY_RCTRL = 228,
  RAI_KEY_RSHIFT = 229,
  RAI_KEY_RALT = 230, /**< alt gr, option */
  RAI_KEY_RGUI = 231, /**< windows, command (apple), meta */
  RAI_KEY_MODE = 257,
  RAI_KEY_AUDIONEXT = 258,
  RAI_KEY_AUDIOPREV = 259,
  RAI_KEY_AUDIOSTOP = 260,
  RAI_KEY_AUDIOPLAY = 261,
  RAI_KEY_AUDIOMUTE = 262,
  RAI_KEY_MEDIASELECT = 263,
  RAI_KEY_WWW = 264,
  RAI_KEY_MAIL = 265,
  RAI_KEY_CALCULATOR = 266,
  RAI_KEY_COMPUTER = 267,
  RAI_KEY_AC_SEARCH = 268,
  RAI_KEY_AC_HOME = 269,
  RAI_KEY_AC_BACK = 270,
  RAI_KEY_AC_FORWARD = 271,
  RAI_KEY_AC_STOP = 272,
  RAI_KEY_AC_REFRESH = 273,
  RAI_KEY_AC_BOOKMARKS = 274,
  RAI_KEY_BRIGHTNESSDOWN = 275,
  RAI_KEY_BRIGHTNESSUP = 276,
  RAI_KEY_DISPLAYSWITCH = 277,
  RAI_KEY_KBDILLUMTOGGLE = 278,
  RAI_KEY_KBDILLUMDOWN = 279,
  RAI_KEY_KBDILLUMUP = 280,
  RAI_KEY_EJECT = 281,
  RAI_KEY_SLEEP = 282,
  RAI_KEY_APP1 = 283,
  RAI_KEY_APP2 = 284,
} RAI_keyboard_input;

#endif //RAI_RAI_KEYBOARD_HPP
